{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Decision Tree Regression (using DecisionTrees.jl)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adapted from http://scikit-learn.org/stable/auto_examples/tree/plot_tree_regression.html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "A 1D regression with decision tree.\n",
    "\n",
    "The decision trees is used to fit a sine curve with addition noisy observation. As a result, it learns local linear regressions approximating the sine curve.\n",
    "\n",
    "We can see that if the maximum depth of the tree (controlled by the max_depth parameter) is set too high, the decision trees learn too fine details of the training data and learn from the noise, i.e. they overfit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[36mINFO: \u001b[39m\u001b[22m\u001b[36mRecompiling stale cache file /Users/cedric/.julia/lib/v0.6/DecisionTree.ji for module DecisionTree.\n",
      "\u001b[39m\u001b[1m\u001b[36mINFO: \u001b[39m\u001b[22m\u001b[36mRecompiling stale cache file /Users/cedric/.julia/lib/v0.6/ScikitLearn.ji for module ScikitLearn.\n",
      "\u001b[39m\u001b[1m\u001b[36mINFO: \u001b[39m\u001b[22m\u001b[36mRecompiling stale cache file /Users/cedric/.julia/lib/v0.6/PyPlot.ji for module PyPlot.\n",
      "\u001b[39m"
     ]
    },
    {
     "data": {
      "image/png": "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agBGamqqUVRUZJw8edJYu3at0bNnTyM2NtbIzs52HFtSUmJ06tTJ6NOnj+P/z27gwIEu7/X1119vREZGGocPH3aJqUuXLgZg5Obm+uw9WLVqlQEYy5Yt8/g6n376acNkMhkFBQWVvhcLFy50bLvooouMmJgY48SJEy6v4+yzzza6dOni2Pbvf//bAIwpU6a4XHP69OkGYBw6dMjj84rUBHVXifiQ4TSO/48//mDz5s3ccsstABQXFztu1157Lbm5ufz222+ArZslISGB7t27e/V8vXr1YsGCBTz99NN89913FBUVVXrO119/DVBuZtPIkSNp2rQpy5cvd9l+0UUX0aFDB8fj0NBQzj77bLfdRWfikksuKdet9vHHH2M2mxkzZozL+xcbG8u5557LihUrAFi5ciX5+fmMGzfO5TiAwYMHs3r16iq9N5MmTSIoKIjQ0FAuvvhifv/9dz7++GNiYmIcx/zyyy9kZWXx5z//mZKSknL/rzt27HC0AH3zzTcMGjSI5s2bO84PDAxk5MiRPn8PunXrRkREBA8++CCvvfYamzdvLnf9Xr16YRgGSUlJLFmyhNzc3Erfk8OHD7N+/XpGjx7tMj4oMDCQW265ha1bt7J9+3aXc4YNG+by+IILLgBg586dlT6fiC8pyRHxkePHj3Pw4EHat28PlI7jeOihhwgKCnK5TZw4EYADBw4AtrE1FovF6+d87733GDduHPPmzeOyyy4jKiqKW2+91WUMRlkHDx4kMDCw3Awtk8lE27Zty3V1uZthExISQkFBgdfxVqRdu3bltu3duxer1UqLFi3KvYfr1693vH/29/q6664rd1xqairFxcXlxhu5M3XqVH744QcyMzP5xz/+QUFBAcOGDSMvL88lJoD77ruv3HNNmTIFsP2/Wq1W8vPz3XY1eup+PJP3oGXLlnzzzTd0796dqVOn0r17dywWC0899RRWqxWAq6++mrS0NI4fP86f//xn2rdvz4UXXkhaWprH98T+8+AuNvvPemU/M/buT1//zIhURmNyRHzkk08+wWq10r9/fwBatWoFwLRp00hMTHR7zjnnnAPYplJnZ2d7/ZytWrUiJSWFlJQUdu7cyUcffcQjjzzCvn37WLZsmdtzWrZsSXFxMfv373dJdAzDYM+ePfTs2dPrOHzBZDKV29aqVSsCAwNZtWoVZrO53H57y4L9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",
      "text/plain": [
       "PyPlot.Figure(PyObject <Figure size 640x480 with 1 Axes>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "using DecisionTree\n",
    "using ScikitLearn, Random, Statistics\n",
    "using PyPlot\n",
    "\n",
    "# Create a random dataset\n",
    "Random.seed!(42)\n",
    "X = sort(5 * rand(80))\n",
    "XX = reshape(X, 80, 1)\n",
    "y = sin.(X)\n",
    "y[1:5:end] += 3 * (0.5 .- rand(16))\n",
    "\n",
    "# Fit regression model\n",
    "regr_1 = DecisionTreeRegressor()\n",
    "regr_2 = DecisionTreeRegressor(pruning_purity_threshold=0.05)\n",
    "regr_3 = RandomForestRegressor(n_trees=20)\n",
    "fit!(regr_1, XX, y)\n",
    "fit!(regr_2, XX, y)\n",
    "fit!(regr_3, XX, y)\n",
    "\n",
    "# Predict\n",
    "X_test = 0:0.01:5.0\n",
    "y_1 = predict(regr_1, hcat(X_test))\n",
    "y_2 = predict(regr_2, hcat(X_test))\n",
    "y_3 = predict(regr_3, hcat(X_test))\n",
    "\n",
    "# Plot the results\n",
    "scatter(X, y, c=\"k\", label=\"data\")\n",
    "plot(X_test, y_1, c=\"g\", label=\"no pruning\", linewidth=2)\n",
    "plot(X_test, y_2, c=\"r\", label=\"pruning_purity_threshold=0.05\", linewidth=2)\n",
    "plot(X_test, y_3, c=\"b\", label=\"RandomForestClassifier\", linewidth=2)\n",
    "xlabel(\"data\")\n",
    "ylabel(\"target\")\n",
    "title(\"Decision Tree Regression\")\n",
    "legend(prop=Dict(\"size\"=>10));"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 0.6.0 (Programa)",
   "language": "julia",
   "name": "julia-0.6-programa"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "0.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
